import {
    _decorator,
    Component,
    Node,
    Sprite,
    SpriteFrame,
    UITransform
} from 'cc';
import { createUINode } from '../../Utils';
import { TILE_TYPE_ENUM } from '../../Enum';
const {
    ccclass,
    property
} = _decorator;

export const TILE_WIDTH=55;
export const TILE_HEIGHT=55;

@ccclass('TileManager')
export class TileManager extends Component {
    type:TILE_TYPE_ENUM
    moveable:boolean
    turnable:boolean

    //spriteFrame需要外面传进来
    init(type:TILE_TYPE_ENUM,spriteFrame:SpriteFrame,i:number,j:number) {

        this.type=type

        if(this.type === TILE_TYPE_ENUM.WALL_COLUMN ||
            this.type === TILE_TYPE_ENUM.WALL_LEFT_BOTTOM ||
            this.type === TILE_TYPE_ENUM.WALL_LEFT_TOP ||
            this.type === TILE_TYPE_ENUM.WALL_RIGHT_BOTTOM ||
            this.type === TILE_TYPE_ENUM.WALL_RIGHT_TOP ||
            this.type === TILE_TYPE_ENUM.WALL_ROW){

                this.moveable=false
                this.turnable=false

        }else if(this.type === TILE_TYPE_ENUM.CLIFF_CENTER ||
            this.type === TILE_TYPE_ENUM.CLIFF_LEFT||
            this.type === TILE_TYPE_ENUM.CLIFF_RIGHT 
            ){
                this.moveable=false
                this.turnable=true
        }else if(
            this.type === TILE_TYPE_ENUM.FLOOR
        ){
            this.moveable=true
                this.turnable=true
        }



        //现在实例化没个瓦片节点
        
        //创建这个node的时候  有很多组件都是要用到的，所以我们封装工具组件
        const sprite = this.addComponent(Sprite)
        
        sprite.spriteFrame = spriteFrame
        //spriteFrames.find(v => v.name === imgSrc) || spriteFrames[0]



        //为什么是this啊？？
        this.getComponent(UITransform).setContentSize(TILE_WIDTH, TILE_HEIGHT)
        
        
        //设置大小

        //如果想被渲染的话要设置layer
        

        //设置位置，每渲染一个向下跑一个单位
        this.node.setPosition(i * TILE_WIDTH, -j * TILE_HEIGHT)


        

        //要用到资源加载，但是cocos资源加载是一个回调函数，所以我们需要封装
    }


}